//
//  BaseViewModel.h
//  UsedCar
//
//  Created by 刘剑锋 on 2022/11/5.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

@interface YCBaseViewModel : NSObject

/// 每次条数默认10条
@property(nonatomic, assign) NSInteger limitCount;

/// 当前所在菜单位置
@property(nonatomic, assign) NSInteger curIndex;

/// 最新动态
@property (nonatomic, strong) UITableView *ttbleV1;

/// 朋友动态
@property (nonatomic, strong) UITableView *ttbleV2;

/// 附近动态
@property (nonatomic, strong) UITableView *ttbleV3;

/// 订阅动态
@property (nonatomic, strong) UITableView *ttbleV4;

/// 订阅动态
@property (nonatomic, strong) UITableView *ttbleV5;

/// 订阅动态
@property (nonatomic, strong) UITableView *ttbleV6;

#pragma mark  ———— 🥬🔸🍎 表格数据源
@property(nonatomic, strong) NSMutableArray *arrTable1;
@property(nonatomic, strong) NSMutableArray *arrTable2;
@property(nonatomic, strong) NSMutableArray *arrTable3;
@property(nonatomic, strong) NSMutableArray *arrTable4;
@property(nonatomic, strong) NSMutableArray *arrTable5;
@property(nonatomic, strong) NSMutableArray *arrTable6;

/// 第一个的页数
@property(nonatomic, assign) NSInteger page1;

/// 第2个的页数
@property(nonatomic, assign) NSInteger page2;

/// 第3个的页数
@property(nonatomic, assign) NSInteger page3;

/// 第4个的页数
@property(nonatomic, assign) NSInteger page4;

/// 第4个的页数
@property(nonatomic, assign) NSInteger page5;

/// 第4个的页数
@property(nonatomic, assign) NSInteger page6;

/// 第一个是否还有更多
@property(nonatomic, assign) BOOL isNoMore_tab1;

/// 第2个是否还有更多
@property(nonatomic, assign) BOOL isNoMore_tab2;

/// 第3个是否还有更多
@property(nonatomic, assign) BOOL isNoMore_tab3;

/// 第4个是否还有更多
@property(nonatomic, assign) BOOL isNoMore_tab4;

/// 第4个是否还有更多
@property(nonatomic, assign) BOOL isNoMore_tab5;

/// 第4个是否还有更多
@property(nonatomic, assign) BOOL isNoMore_tab6;

/// 点击后是否需要请求表1
@property(nonatomic, assign) BOOL hasRequest1;

/// 点击后是否需要请求表2
@property(nonatomic, assign) BOOL hasRequest2;

/// 点击后是否需要请求表3
@property(nonatomic, assign) BOOL hasRequest3;

/// 点击后是否需要请求表4
@property(nonatomic, assign) BOOL hasRequest4;

/// 点击后是否需要请求表5
@property(nonatomic, assign) BOOL hasRequest5;

/// 点击后是否需要请求表5\6
@property(nonatomic, assign) BOOL hasRequest6;

#pragma mark  ———— 🥬🔸🍎 TableView Delegate

/// 表格个数
/// @param tableView tableView description
/// @param section section description
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;

/// cell创建
/// @param tableView tableView description
/// @param indexPath indexPath description
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

/// 单元格点击
/// @param tableView tableView description
/// @param indexPath indexPath description
- (NSObject *)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;

/// cell将要出现
/// @param tableView tableView description
/// @param cell cell description
/// @param indexPath indexPath description
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath;

/// cell高度
/// @param tableView tableView description
/// @param indexPath indexPath description
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;

/// header创建
/// @param tableView tableView description
/// @param section section description
-(nullable UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section;

/// sectionHeader高度
/// @param tableView tableView description
/// @param section section description
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;

/// sectionFoot高度
/// @param tableView tableView description
/// @param section section description
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section;

/// footView
/// @param tableView tableView description
/// @param section section description
- (nullable UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section;

#pragma mark  ———— 🥬🔸🍎 other
/// 设置需要点击更新数据的页面
/// @param index index description
- (void)setNeedReloadIndexWith:(NSInteger)index;

/// 菜单点击
/// @param index index description
- (void)spageMenuClickWith:(NSInteger)index;

/// 刷新当前表格
- (void)reloadCurrentTableView;

/// 绑定表格
/// @param tableArr tables description
- (void)setupTableViews:(NSMutableArray *)tableArr;

#pragma mark  ———— 🥬🔸🍎 入口
/// 开始请求数据
- (void)startRequest;

@end

NS_ASSUME_NONNULL_END
